package com.safeneeds.sysmana.entity.dao.impl;

import java.util.List;

import com.safeneeds.sysmana.entity.SysDepa;
import com.safeneeds.sysmana.entity.dao.ISysDepaDao;
import com.safeneeds.util.base.BaseHibernateDao;

/**
 * 部门管理Dao
 * @author gaof
 * @date 2016年12月20日
 */
public class SysDepaDao extends BaseHibernateDao<SysDepa, Integer> implements ISysDepaDao {

	/**
	 * 获取所有部门信息
	 * @return
	 */
	@Override
	public List<SysDepa> depaList() {
		return this.getEntities("From SysDepa order by seq");
	}

	/**
	 * 添加部门
	 * @param depa
	 */
	@Override
	public void addDepa(SysDepa depa) {
		this.saveEntity(depa);
	}

	/**
	 * 通过部门id获取部门
	 * @param id
	 * @return
	 */
	@Override
	public SysDepa getDepaById(Integer id) {
		return this.findById(id);
	}

	/**
	 * 删除所有部门
	 */
	@Override
	public void delAllDepa() {
		this.executeQuery("delete from sys_depa");
	}

	/**
	 * 通过pid获取下级部门
	 * @param id
	 * @return
	 */
	@Override
	public List<SysDepa> listDepaByPId(Integer id) {
		return this.getEntities("From SysDepa where pid = " + id);
	}

	/**
	 * 删除部门列表
	 * @param depaList
	 */
	@Override
	public void delDepaList(List<SysDepa> depaList) {
		this.deleteAll(depaList);
	}

	/**
	 * 根据部门Code获取部门信息
	 * @param fjDcode
	 * @return
	 */
	@Override
	public SysDepa getDepaByCode(String fjDcode) {
       return this.getEntity("From SysDepa where depaCode =" + fjDcode );
	}

	/**
	 * 根据部门类型获取部门列表信息
	 * @param type
	 * @return
	 */
	@Override
	public List<SysDepa> getDepaListByType(String type) {
		return this.getEntities("From SysDepa where depaType = "+type+"");
	}

}
